package com.ubxtech.sms.service;

import com.ubxtech.core.plugins.Page;
import com.ubxtech.sms.bo.SmsEventBO;
import com.ubxtech.sms.bo.SmsLogBO;
import com.ubxtech.sms.req.SmsLogApiReq;

import java.util.Collection;

/**
 *
 * @author Victor.Xiao
 * @since 2023-05-15 10:46
*/
public interface SmsService {


    /**
     * 批量发送短信
     * @author Victor.Xiao
     * @since 2023-05-15 15:37
     * @param smsEventBO smsEventBO
     * @return java.lang.String
     */
    String batchSendSms(SmsEventBO smsEventBO );



    /**
     * 获取模板
     * @author Victor.Xiao
     * @since 2023-05-17 10:31
     * @param templateId templateId
     * @param offset 数据偏移指针 （默认值为0，默认返回最近50个模板信息。offset=1时，查询第51-100个模板， offset=2时，查询第101-150个模板，以此类推。）
     * @return java.lang.String
     */
    String getTemplate(String templateId,String offset );

    /**
     * 查询余额
     * @author Victor.Xiao
     * @since 2023-05-15 15:37
     * @return java.lang.String
     */
    String balance();


    /**
     * 短信记录
     * @author Victor.Xiao
     * @since 2023-05-16 10:53
     * @param smsLogApiReq smsLogReq
     * @return com.ubxtech.core.plugins.Page<com.ubxtech.sms.bo.SmsLogBO>
    */
    Page<SmsLogBO> smsLog(SmsLogApiReq smsLogApiReq);


    /**
     * 校验appId和key是否能访问
     *
     * @param url  url
     * @param appId  appId
     * @param appKey appKey
     * @return java.lang.Boolean
     * @author Victor.Xiao
     * @since 2023-05-15 18:00
     */
    Boolean checkAppId(String url, String appId, String appKey);


    /**
     * 短信一对多发送
     * @author Victor.Xiao
     * @since 2023-05-15 15:37
     * @param smsEventBO smsEventBO
     * @return java.lang.String
     */
    String multiSendSms(SmsEventBO smsEventBO );


    /**
     * 发送短信
     * @author Victor.Xiao
     * @since 2023-05-15 15:37
     * @param smsEventBO smsEventBO
     * @return java.lang.String
     */
    String sendSms(SmsEventBO smsEventBO );
}
